<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span id="local-6989586621680803611"><span id="local-6989586621680803612"></span></span><span class="hs-comment">-- (c) Bartosz Nitka, Facebook, 2015</span><span>
</span><span id="line-2"></span><span>
</span><span id="line-3"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-4"></span><span class="hs-comment">-- Specialised deterministic sets, for things with @Uniques@</span><span>
</span><span id="line-5"></span><span class="hs-comment">--</span><span>
</span><span id="line-6"></span><span class="hs-comment">-- Based on 'UniqDFM's (as you would expect).</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- See Note [Deterministic UniqFM] in &quot;GHC.Types.Unique.DFM&quot; for explanation why we need it.</span><span>
</span><span id="line-8"></span><span class="hs-comment">--</span><span>
</span><span id="line-9"></span><span class="hs-comment">-- Basically, the things need to be in class 'Uniquable'.</span><span>
</span><span id="line-10"></span><span>
</span><span id="line-11"></span><span class="hs-pragma">{-# LANGUAGE GeneralizedNewtypeDeriving #-}</span><span>
</span><span id="line-12"></span><span class="hs-pragma">{-# LANGUAGE DeriveDataTypeable #-}</span><span>
</span><span id="line-13"></span><span>
</span><span id="line-14"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Types.Unique.DSet</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-15"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Unique set type</span></span><span>
</span><span id="line-16"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier">UniqDSet</span></a></span><span class="hs-special">,</span><span>    </span><span class="hs-comment">-- type synonym for UniqFM a</span><span>
</span><span id="line-17"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier">getUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-18"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#pprUniqDSet"><span class="hs-identifier">pprUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-19"></span><span>
</span><span id="line-20"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Manipulating these sets</span></span><span>
</span><span id="line-21"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#delOneFromUniqDSet"><span class="hs-identifier">delOneFromUniqDSet</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#delListFromUniqDSet"><span class="hs-identifier">delListFromUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-22"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#emptyUniqDSet"><span class="hs-identifier">emptyUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-23"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#unitUniqDSet"><span class="hs-identifier">unitUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-24"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#mkUniqDSet"><span class="hs-identifier">mkUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-25"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#addOneToUniqDSet"><span class="hs-identifier">addOneToUniqDSet</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#addListToUniqDSet"><span class="hs-identifier">addListToUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-26"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#unionUniqDSets"><span class="hs-identifier">unionUniqDSets</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#unionManyUniqDSets"><span class="hs-identifier">unionManyUniqDSets</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-27"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#minusUniqDSet"><span class="hs-identifier">minusUniqDSet</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#uniqDSetMinusUniqSet"><span class="hs-identifier">uniqDSetMinusUniqSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-28"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#intersectUniqDSets"><span class="hs-identifier">intersectUniqDSets</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#uniqDSetIntersectUniqSet"><span class="hs-identifier">uniqDSetIntersectUniqSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-29"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#nonDetStrictFoldUniqDSet"><span class="hs-identifier">nonDetStrictFoldUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-30"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#elementOfUniqDSet"><span class="hs-identifier">elementOfUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-31"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#filterUniqDSet"><span class="hs-identifier">filterUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-32"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#sizeUniqDSet"><span class="hs-identifier">sizeUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-33"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#isEmptyUniqDSet"><span class="hs-identifier">isEmptyUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-34"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#lookupUniqDSet"><span class="hs-identifier">lookupUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-35"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#uniqDSetToList"><span class="hs-identifier">uniqDSetToList</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-36"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#partitionUniqDSet"><span class="hs-identifier">partitionUniqDSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-37"></span><span>        </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#mapUniqDSet"><span class="hs-identifier">mapUniqDSet</span></a></span><span>
</span><span id="line-38"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-39"></span><span>
</span><span id="line-40"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-41"></span><span>
</span><span id="line-42"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-43"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DFM.html"><span class="hs-identifier">GHC.Types.Unique.DFM</span></a></span><span>
</span><span id="line-44"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.Set.html"><span class="hs-identifier">GHC.Types.Unique.Set</span></a></span><span>
</span><span id="line-45"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html"><span class="hs-identifier">GHC.Types.Unique</span></a></span><span>
</span><span id="line-46"></span><span>
</span><span id="line-47"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Coerce.html#"><span class="hs-identifier">Data.Coerce</span></a></span><span>
</span><span id="line-48"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#"><span class="hs-identifier">Data.Data</span></a></span><span>
</span><span id="line-49"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../base/src/Data.Semigroup.html#"><span class="hs-identifier">Data.Semigroup</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Semi</span></span><span>
</span><span id="line-50"></span><span>
</span><span id="line-51"></span><span class="hs-comment">-- See Note [UniqSet invariant] in GHC.Types.Unique.Set for why we want a newtype here.</span><span>
</span><span id="line-52"></span><span class="hs-comment">-- Beyond preserving invariants, we may also want to 'override' typeclass</span><span>
</span><span id="line-53"></span><span class="hs-comment">-- instances.</span><span>
</span><span id="line-54"></span><span>
</span><span id="line-55"></span><span class="hs-keyword">newtype</span><span> </span><span id="UniqDSet"><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span></span><span> </span><span id="local-6989586621680803789"><span class="annot"><a href="#local-6989586621680803789"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="UniqDSet"><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span></span><span> </span><span class="hs-special">{</span><span id="getUniqDSet%27"><span class="annot"><span class="annottext">forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet%27"><span class="hs-identifier hs-var hs-var">getUniqDSet'</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DFM.html#UniqDFM"><span class="hs-identifier hs-type">UniqDFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803789"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803789"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">}</span><span>
</span><span id="line-56"></span><span>                   </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680803547"><span id="local-6989586621680803549"><span id="local-6989586621680803551"><span id="local-6989586621680803553"><span id="local-6989586621680803555"><span id="local-6989586621680803557"><span id="local-6989586621680803559"><span id="local-6989586621680803561"><span id="local-6989586621680803563"><span id="local-6989586621680803569"><span id="local-6989586621680803571"><span id="local-6989586621680803573"><span id="local-6989586621680803576"><span id="local-6989586621680803580"><span class="annot"><span class="annottext">Typeable (UniqDSet a)
Typeable (UniqDSet a)
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; UniqDSet a -&gt; c (UniqDSet a))
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (UniqDSet a))
-&gt; (UniqDSet a -&gt; Constr)
-&gt; (UniqDSet a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (UniqDSet a)))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e))
    -&gt; Maybe (c (UniqDSet a)))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; UniqDSet a -&gt; UniqDSet a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqDSet a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqDSet a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; UniqDSet a -&gt; [u])
-&gt; (forall u.
    Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; UniqDSet a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a))
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a))
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a))
-&gt; Data (UniqDSet a)
UniqDSet a -&gt; DataType
UniqDSet a -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; UniqDSet a -&gt; UniqDSet a
forall {a}. Data a =&gt; Typeable (UniqDSet a)
forall a. Data a =&gt; UniqDSet a -&gt; DataType
forall a. Data a =&gt; UniqDSet a -&gt; Constr
forall a.
Data a =&gt;
(forall b. Data b =&gt; b -&gt; b) -&gt; UniqDSet a -&gt; UniqDSet a
forall a u.
Data a =&gt;
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; UniqDSet a -&gt; u
forall a u.
Data a =&gt;
(forall d. Data d =&gt; d -&gt; u) -&gt; UniqDSet a -&gt; [u]
forall a r r'.
Data a =&gt;
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqDSet a -&gt; r
forall a r r'.
Data a =&gt;
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqDSet a -&gt; r
forall a (m :: * -&gt; *).
(Data a, Monad m) =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a)
forall a (m :: * -&gt; *).
(Data a, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a)
forall a (c :: * -&gt; *).
Data a =&gt;
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (UniqDSet a)
forall a (c :: * -&gt; *).
Data a =&gt;
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; UniqDSet a -&gt; c (UniqDSet a)
forall a (t :: * -&gt; *) (c :: * -&gt; *).
(Data a, Typeable t) =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (UniqDSet a))
forall a (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data a, Typeable t) =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (UniqDSet a))
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; UniqDSet a -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; UniqDSet a -&gt; [u]
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqDSet a -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqDSet a -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a)
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a)
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (UniqDSet a)
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; UniqDSet a -&gt; c (UniqDSet a)
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (UniqDSet a))
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (UniqDSet a))
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a)
$cgmapMo :: forall a (m :: * -&gt; *).
(Data a, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a)
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a)
$cgmapMp :: forall a (m :: * -&gt; *).
(Data a, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a)
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a)
$cgmapM :: forall a (m :: * -&gt; *).
(Data a, Monad m) =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; UniqDSet a -&gt; m (UniqDSet a)
gmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; UniqDSet a -&gt; u
$cgmapQi :: forall a u.
Data a =&gt;
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; UniqDSet a -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; UniqDSet a -&gt; [u]
$cgmapQ :: forall a u.
Data a =&gt;
(forall d. Data d =&gt; d -&gt; u) -&gt; UniqDSet a -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqDSet a -&gt; r
$cgmapQr :: forall a r r'.
Data a =&gt;
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqDSet a -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqDSet a -&gt; r
$cgmapQl :: forall a r r'.
Data a =&gt;
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; UniqDSet a -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; UniqDSet a -&gt; UniqDSet a
$cgmapT :: forall a.
Data a =&gt;
(forall b. Data b =&gt; b -&gt; b) -&gt; UniqDSet a -&gt; UniqDSet a
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (UniqDSet a))
$cdataCast2 :: forall a (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data a, Typeable t) =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (UniqDSet a))
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (UniqDSet a))
$cdataCast1 :: forall a (t :: * -&gt; *) (c :: * -&gt; *).
(Data a, Typeable t) =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (UniqDSet a))
dataTypeOf :: UniqDSet a -&gt; DataType
$cdataTypeOf :: forall a. Data a =&gt; UniqDSet a -&gt; DataType
toConstr :: UniqDSet a -&gt; Constr
$ctoConstr :: forall a. Data a =&gt; UniqDSet a -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (UniqDSet a)
$cgunfold :: forall a (c :: * -&gt; *).
Data a =&gt;
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (UniqDSet a)
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; UniqDSet a -&gt; c (UniqDSet a)
$cgfoldl :: forall a (c :: * -&gt; *).
Data a =&gt;
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; UniqDSet a -&gt; c (UniqDSet a)
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680803533"><span id="local-6989586621680803539"><span id="local-6989586621680803544"><span class="annot"><span class="annottext">NonEmpty (UniqDSet a) -&gt; UniqDSet a
UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
(UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a)
-&gt; (NonEmpty (UniqDSet a) -&gt; UniqDSet a)
-&gt; (forall b. Integral b =&gt; b -&gt; UniqDSet a -&gt; UniqDSet a)
-&gt; Semigroup (UniqDSet a)
forall b. Integral b =&gt; b -&gt; UniqDSet a -&gt; UniqDSet a
forall a. NonEmpty (UniqDSet a) -&gt; UniqDSet a
forall a. UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
forall a.
(a -&gt; a -&gt; a)
-&gt; (NonEmpty a -&gt; a)
-&gt; (forall b. Integral b =&gt; b -&gt; a -&gt; a)
-&gt; Semigroup a
forall a b. Integral b =&gt; b -&gt; UniqDSet a -&gt; UniqDSet a
stimes :: forall b. Integral b =&gt; b -&gt; UniqDSet a -&gt; UniqDSet a
$cstimes :: forall a b. Integral b =&gt; b -&gt; UniqDSet a -&gt; UniqDSet a
sconcat :: NonEmpty (UniqDSet a) -&gt; UniqDSet a
$csconcat :: forall a. NonEmpty (UniqDSet a) -&gt; UniqDSet a
&lt;&gt; :: UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
$c&lt;&gt; :: forall a. UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
</span><a href="../../base/src/GHC.Base.html#Semigroup"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Semi.Semigroup</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680803514"><span id="local-6989586621680803518"><span id="local-6989586621680803523"><span class="annot"><span class="annottext">Semigroup (UniqDSet a)
UniqDSet a
Semigroup (UniqDSet a)
-&gt; UniqDSet a
-&gt; (UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a)
-&gt; ([UniqDSet a] -&gt; UniqDSet a)
-&gt; Monoid (UniqDSet a)
[UniqDSet a] -&gt; UniqDSet a
UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
forall a. Semigroup (UniqDSet a)
forall a. UniqDSet a
forall a.
Semigroup a -&gt; a -&gt; (a -&gt; a -&gt; a) -&gt; ([a] -&gt; a) -&gt; Monoid a
forall a. [UniqDSet a] -&gt; UniqDSet a
forall a. UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
mconcat :: [UniqDSet a] -&gt; UniqDSet a
$cmconcat :: forall a. [UniqDSet a] -&gt; UniqDSet a
mappend :: UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
$cmappend :: forall a. UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
mempty :: UniqDSet a
$cmempty :: forall a. UniqDSet a
</span><a href="../../base/src/GHC.Base.html#Monoid"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Monoid</span></a></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-57"></span><span>
</span><span id="line-58"></span><span id="local-6989586621680803509"><span class="annot"><a href="GHC.Types.Unique.DSet.html#emptyUniqDSet"><span class="hs-identifier hs-type">emptyUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803509"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-59"></span><span id="emptyUniqDSet"><span class="annot"><span class="annottext">emptyUniqDSet :: forall a. UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#emptyUniqDSet"><span class="hs-identifier hs-var hs-var">emptyUniqDSet</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
forall key elt. UniqDFM key elt
</span><a href="GHC.Types.Unique.DFM.html#emptyUDFM"><span class="hs-identifier hs-var">emptyUDFM</span></a></span><span>
</span><span id="line-60"></span><span>
</span><span id="line-61"></span><span id="local-6989586621680803737"><span class="annot"><a href="GHC.Types.Unique.DSet.html#unitUniqDSet"><span class="hs-identifier hs-type">unitUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803737"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680803737"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803737"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-62"></span><span id="unitUniqDSet"><span class="annot"><span class="annottext">unitUniqDSet :: forall a. Uniquable a =&gt; a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#unitUniqDSet"><span class="hs-identifier hs-var hs-var">unitUniqDSet</span></a></span></span><span> </span><span id="local-6989586621680803505"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680803505"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; a -&gt; UniqDFM a a
forall key elt. Uniquable key =&gt; key -&gt; elt -&gt; UniqDFM key elt
</span><a href="GHC.Types.Unique.DFM.html#unitUDFM"><span class="hs-identifier hs-var">unitUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680803505"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680803505"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-63"></span><span>
</span><span id="line-64"></span><span id="local-6989586621680803732"><span class="annot"><a href="GHC.Types.Unique.DSet.html#mkUniqDSet"><span class="hs-identifier hs-type">mkUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803732"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680803732"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803732"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-65"></span><span id="mkUniqDSet"><span class="annot"><span class="annottext">mkUniqDSet :: forall a. Uniquable a =&gt; [a] -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#mkUniqDSet"><span class="hs-identifier hs-var hs-var">mkUniqDSet</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqDSet a -&gt; a -&gt; UniqDSet a) -&gt; UniqDSet a -&gt; [a] -&gt; UniqDSet a
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; a -&gt; UniqDSet a
forall a. Uniquable a =&gt; UniqDSet a -&gt; a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#addOneToUniqDSet"><span class="hs-identifier hs-var">addOneToUniqDSet</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a
forall a. UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#emptyUniqDSet"><span class="hs-identifier hs-var">emptyUniqDSet</span></a></span><span>
</span><span id="line-66"></span><span>
</span><span id="line-67"></span><span class="hs-comment">-- The new element always goes to the right of existing ones.</span><span>
</span><span id="line-68"></span><span id="local-6989586621680803727"><span class="annot"><a href="GHC.Types.Unique.DSet.html#addOneToUniqDSet"><span class="hs-identifier hs-type">addOneToUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803727"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803727"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680803727"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803727"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-69"></span><span id="addOneToUniqDSet"><span class="annot"><span class="annottext">addOneToUniqDSet :: forall a. Uniquable a =&gt; UniqDSet a -&gt; a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#addOneToUniqDSet"><span class="hs-identifier hs-var hs-var">addOneToUniqDSet</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803496"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803496"><span class="hs-identifier hs-var">set</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680803495"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680803495"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqDFM a a -&gt; a -&gt; a -&gt; UniqDFM a a
forall key elt.
Uniquable key =&gt;
UniqDFM key elt -&gt; key -&gt; elt -&gt; UniqDFM key elt
</span><a href="GHC.Types.Unique.DFM.html#addToUDFM"><span class="hs-identifier hs-var">addToUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803496"><span class="hs-identifier hs-var">set</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680803495"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680803495"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-70"></span><span>
</span><span id="line-71"></span><span id="local-6989586621680803723"><span class="annot"><a href="GHC.Types.Unique.DSet.html#addListToUniqDSet"><span class="hs-identifier hs-type">addListToUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803723"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803723"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680803723"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803723"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-72"></span><span id="addListToUniqDSet"><span class="annot"><span class="annottext">addListToUniqDSet :: forall a. Uniquable a =&gt; UniqDSet a -&gt; [a] -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#addListToUniqDSet"><span class="hs-identifier hs-var hs-var">addListToUniqDSet</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqDSet a -&gt; a -&gt; UniqDSet a) -&gt; UniqDSet a -&gt; [a] -&gt; UniqDSet a
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; a -&gt; UniqDSet a
forall a. Uniquable a =&gt; UniqDSet a -&gt; a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#addOneToUniqDSet"><span class="hs-identifier hs-var">addOneToUniqDSet</span></a></span><span>
</span><span id="line-73"></span><span>
</span><span id="line-74"></span><span id="local-6989586621680803490"><span class="annot"><a href="GHC.Types.Unique.DSet.html#delOneFromUniqDSet"><span class="hs-identifier hs-type">delOneFromUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803490"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803490"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680803490"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803490"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-75"></span><span id="delOneFromUniqDSet"><span class="annot"><span class="annottext">delOneFromUniqDSet :: forall a. Uniquable a =&gt; UniqDSet a -&gt; a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#delOneFromUniqDSet"><span class="hs-identifier hs-var hs-var">delOneFromUniqDSet</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803487"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803487"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="annot"><span class="annottext">(UniqDFM a a -&gt; UniqDSet a)
-&gt; (a -&gt; UniqDFM a a) -&gt; a -&gt; UniqDSet a
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; a -&gt; UniqDFM a a
forall key elt.
Uniquable key =&gt;
UniqDFM key elt -&gt; key -&gt; UniqDFM key elt
</span><a href="GHC.Types.Unique.DFM.html#delFromUDFM"><span class="hs-identifier hs-var">delFromUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803487"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-76"></span><span>
</span><span id="line-77"></span><span id="local-6989586621680803484"><span class="annot"><a href="GHC.Types.Unique.DSet.html#delListFromUniqDSet"><span class="hs-identifier hs-type">delListFromUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803484"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803484"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680803484"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803484"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-78"></span><span id="delListFromUniqDSet"><span class="annot"><span class="annottext">delListFromUniqDSet :: forall a. Uniquable a =&gt; UniqDSet a -&gt; [a] -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#delListFromUniqDSet"><span class="hs-identifier hs-var hs-var">delListFromUniqDSet</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803481"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803481"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="annot"><span class="annottext">(UniqDFM a a -&gt; UniqDSet a)
-&gt; ([a] -&gt; UniqDFM a a) -&gt; [a] -&gt; UniqDSet a
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; [a] -&gt; UniqDFM a a
forall key elt.
Uniquable key =&gt;
UniqDFM key elt -&gt; [key] -&gt; UniqDFM key elt
</span><a href="GHC.Types.Unique.DFM.html#delListFromUDFM"><span class="hs-identifier hs-var">delListFromUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803481"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-79"></span><span>
</span><span id="line-80"></span><span id="local-6989586621680803479"><span class="annot"><a href="GHC.Types.Unique.DSet.html#unionUniqDSets"><span class="hs-identifier hs-type">unionUniqDSets</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803479"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803479"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803479"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-81"></span><span id="unionUniqDSets"><span class="annot"><span class="annottext">unionUniqDSets :: forall a. UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#unionUniqDSets"><span class="hs-identifier hs-var hs-var">unionUniqDSets</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803478"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803478"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803477"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803477"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDFM a a -&gt; UniqDFM a a
forall key elt.
UniqDFM key elt -&gt; UniqDFM key elt -&gt; UniqDFM key elt
</span><a href="GHC.Types.Unique.DFM.html#plusUDFM"><span class="hs-identifier hs-var">plusUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803478"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803477"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-82"></span><span>
</span><span id="line-83"></span><span id="local-6989586621680803475"><span class="annot"><a href="GHC.Types.Unique.DSet.html#unionManyUniqDSets"><span class="hs-identifier hs-type">unionManyUniqDSets</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803475"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803475"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-84"></span><span id="unionManyUniqDSets"><span class="annot"><span class="annottext">unionManyUniqDSets :: forall a. [UniqDSet a] -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#unionManyUniqDSets"><span class="hs-identifier hs-var hs-var">unionManyUniqDSets</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDSet a
forall a. UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#emptyUniqDSet"><span class="hs-identifier hs-var">emptyUniqDSet</span></a></span><span>
</span><span id="line-85"></span><span class="annot"><a href="GHC.Types.Unique.DSet.html#unionManyUniqDSets"><span class="hs-identifier hs-var">unionManyUniqDSets</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680803473"><span class="annot"><span class="annottext">UniqDSet a
</span><a href="#local-6989586621680803473"><span class="hs-identifier hs-var">x</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621680803472"><span class="annot"><span class="annottext">[UniqDSet a]
</span><a href="#local-6989586621680803472"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a)
-&gt; UniqDSet a -&gt; [UniqDSet a] -&gt; UniqDSet a
forall (t :: * -&gt; *) b a.
Foldable t =&gt;
(b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldl%27"><span class="hs-identifier hs-var">foldl'</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
forall a. UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#unionUniqDSets"><span class="hs-identifier hs-var">unionUniqDSets</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a
</span><a href="#local-6989586621680803473"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">[UniqDSet a]
</span><a href="#local-6989586621680803472"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-86"></span><span>
</span><span id="line-87"></span><span id="local-6989586621680803471"><span class="annot"><a href="GHC.Types.Unique.DSet.html#minusUniqDSet"><span class="hs-identifier hs-type">minusUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803471"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803471"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803471"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-88"></span><span id="minusUniqDSet"><span class="annot"><span class="annottext">minusUniqDSet :: forall a. UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#minusUniqDSet"><span class="hs-identifier hs-var hs-var">minusUniqDSet</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803470"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803470"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803469"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803469"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDFM a a -&gt; UniqDFM a a
forall key elt1 elt2.
UniqDFM key elt1 -&gt; UniqDFM key elt2 -&gt; UniqDFM key elt1
</span><a href="GHC.Types.Unique.DFM.html#minusUDFM"><span class="hs-identifier hs-var">minusUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803470"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803469"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-89"></span><span>
</span><span id="line-90"></span><span id="local-6989586621680803704"><span class="annot"><a href="GHC.Types.Unique.DSet.html#uniqDSetMinusUniqSet"><span class="hs-identifier hs-type">uniqDSetMinusUniqSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803704"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.Set.html#UniqSet"><span class="hs-identifier hs-type">UniqSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803704"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803704"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-91"></span><span id="uniqDSetMinusUniqSet"><span class="annot"><span class="annottext">uniqDSetMinusUniqSet :: forall a. UniqDSet a -&gt; UniqSet a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#uniqDSetMinusUniqSet"><span class="hs-identifier hs-var hs-var">uniqDSetMinusUniqSet</span></a></span></span><span> </span><span id="local-6989586621680803467"><span class="annot"><span class="annottext">UniqDSet a
</span><a href="#local-6989586621680803467"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span id="local-6989586621680803466"><span class="annot"><span class="annottext">UniqSet a
</span><a href="#local-6989586621680803466"><span class="hs-identifier hs-var">ys</span></a></span></span><span>
</span><span id="line-92"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqFM a a -&gt; UniqDFM a a
forall key elt1 elt2.
UniqDFM key elt1 -&gt; UniqFM key elt2 -&gt; UniqDFM key elt1
</span><a href="GHC.Types.Unique.DFM.html#udfmMinusUFM"><span class="hs-identifier hs-var">udfmMinusUFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqDSet a -&gt; UniqDFM a a
forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier hs-var">getUniqDSet</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a
</span><a href="#local-6989586621680803467"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqSet a -&gt; UniqFM a a
forall a. UniqSet a -&gt; UniqFM a a
</span><a href="GHC.Types.Unique.Set.html#getUniqSet"><span class="hs-identifier hs-var">getUniqSet</span></a></span><span> </span><span class="annot"><span class="annottext">UniqSet a
</span><a href="#local-6989586621680803466"><span class="hs-identifier hs-var">ys</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-93"></span><span>
</span><span id="line-94"></span><span id="local-6989586621680803463"><span class="annot"><a href="GHC.Types.Unique.DSet.html#intersectUniqDSets"><span class="hs-identifier hs-type">intersectUniqDSets</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803463"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803463"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803463"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-95"></span><span id="intersectUniqDSets"><span class="annot"><span class="annottext">intersectUniqDSets :: forall a. UniqDSet a -&gt; UniqDSet a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#intersectUniqDSets"><span class="hs-identifier hs-var hs-var">intersectUniqDSets</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803462"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803462"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803461"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803461"><span class="hs-identifier hs-var">t</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDFM a a -&gt; UniqDFM a a
forall key elt.
UniqDFM key elt -&gt; UniqDFM key elt -&gt; UniqDFM key elt
</span><a href="GHC.Types.Unique.DFM.html#intersectUDFM"><span class="hs-identifier hs-var">intersectUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803462"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803461"><span class="hs-identifier hs-var">t</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-96"></span><span>
</span><span id="line-97"></span><span id="local-6989586621680803459"><span class="annot"><a href="GHC.Types.Unique.DSet.html#uniqDSetIntersectUniqSet"><span class="hs-identifier hs-type">uniqDSetIntersectUniqSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803459"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.Set.html#UniqSet"><span class="hs-identifier hs-type">UniqSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803459"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803459"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-98"></span><span id="uniqDSetIntersectUniqSet"><span class="annot"><span class="annottext">uniqDSetIntersectUniqSet :: forall a. UniqDSet a -&gt; UniqSet a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#uniqDSetIntersectUniqSet"><span class="hs-identifier hs-var hs-var">uniqDSetIntersectUniqSet</span></a></span></span><span> </span><span id="local-6989586621680803458"><span class="annot"><span class="annottext">UniqDSet a
</span><a href="#local-6989586621680803458"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span id="local-6989586621680803457"><span class="annot"><span class="annottext">UniqSet a
</span><a href="#local-6989586621680803457"><span class="hs-identifier hs-var">ys</span></a></span></span><span>
</span><span id="line-99"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqFM a a -&gt; UniqDFM a a
forall key elt1 elt2.
UniqDFM key elt1 -&gt; UniqFM key elt2 -&gt; UniqDFM key elt1
</span><a href="GHC.Types.Unique.DFM.html#udfmIntersectUFM"><span class="hs-identifier hs-var">udfmIntersectUFM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqDSet a -&gt; UniqDFM a a
forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier hs-var">getUniqDSet</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a
</span><a href="#local-6989586621680803458"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UniqSet a -&gt; UniqFM a a
forall a. UniqSet a -&gt; UniqFM a a
</span><a href="GHC.Types.Unique.Set.html#getUniqSet"><span class="hs-identifier hs-var">getUniqSet</span></a></span><span> </span><span class="annot"><span class="annottext">UniqSet a
</span><a href="#local-6989586621680803457"><span class="hs-identifier hs-var">ys</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-100"></span><span>
</span><span id="line-101"></span><span class="hs-comment">-- See Note [Deterministic UniqFM] to learn about nondeterminism.</span><span>
</span><span id="line-102"></span><span class="hs-comment">-- If you use this please provide a justification why it doesn't introduce</span><span>
</span><span id="line-103"></span><span class="hs-comment">-- nondeterminism.</span><span>
</span><span id="line-104"></span><span id="local-6989586621680803693"><span id="local-6989586621680803694"><span class="annot"><a href="GHC.Types.Unique.DSet.html#nonDetStrictFoldUniqDSet"><span class="hs-identifier hs-type">nonDetStrictFoldUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680803694"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680803693"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680803693"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680803693"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803694"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680803693"><span class="hs-identifier hs-type">b</span></a></span></span></span><span>
</span><span id="line-105"></span><span id="nonDetStrictFoldUniqDSet"><span class="annot"><span class="annottext">nonDetStrictFoldUniqDSet :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; UniqDSet a -&gt; b
</span><a href="GHC.Types.Unique.DSet.html#nonDetStrictFoldUniqDSet"><span class="hs-identifier hs-var hs-var">nonDetStrictFoldUniqDSet</span></a></span></span><span> </span><span id="local-6989586621680803455"><span class="annot"><span class="annottext">a -&gt; b -&gt; b
</span><a href="#local-6989586621680803455"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680803454"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680803454"><span class="hs-identifier hs-var">acc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803453"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803453"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; b -&gt; b) -&gt; b -&gt; UniqDFM a a -&gt; b
forall elt a key. (elt -&gt; a -&gt; a) -&gt; a -&gt; UniqDFM key elt -&gt; a
</span><a href="GHC.Types.Unique.DFM.html#nonDetStrictFoldUDFM"><span class="hs-identifier hs-var">nonDetStrictFoldUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; b -&gt; b
</span><a href="#local-6989586621680803455"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680803454"><span class="hs-identifier hs-var">acc</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803453"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-106"></span><span>
</span><span id="line-107"></span><span id="local-6989586621680803687"><span class="annot"><a href="GHC.Types.Unique.DSet.html#elementOfUniqDSet"><span class="hs-identifier hs-type">elementOfUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803687"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680803687"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803687"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span><span>
</span><span id="line-108"></span><span id="elementOfUniqDSet"><span class="annot"><span class="annottext">elementOfUniqDSet :: forall a. Uniquable a =&gt; a -&gt; UniqDSet a -&gt; Bool
</span><a href="GHC.Types.Unique.DSet.html#elementOfUniqDSet"><span class="hs-identifier hs-var hs-var">elementOfUniqDSet</span></a></span></span><span> </span><span id="local-6989586621680803449"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680803449"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; UniqDFM a a -&gt; Bool
forall key elt. Uniquable key =&gt; key -&gt; UniqDFM key elt -&gt; Bool
</span><a href="GHC.Types.Unique.DFM.html#elemUDFM"><span class="hs-identifier hs-var">elemUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680803449"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="annot"><span class="annottext">(UniqDFM a a -&gt; Bool)
-&gt; (UniqDSet a -&gt; UniqDFM a a) -&gt; UniqDSet a -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; UniqDFM a a
forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier hs-var">getUniqDSet</span></a></span><span>
</span><span id="line-109"></span><span>
</span><span id="line-110"></span><span id="local-6989586621680803683"><span class="annot"><a href="GHC.Types.Unique.DSet.html#filterUniqDSet"><span class="hs-identifier hs-type">filterUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680803683"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803683"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803683"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-111"></span><span id="filterUniqDSet"><span class="annot"><span class="annottext">filterUniqDSet :: forall a. (a -&gt; Bool) -&gt; UniqDSet a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#filterUniqDSet"><span class="hs-identifier hs-var hs-var">filterUniqDSet</span></a></span></span><span> </span><span id="local-6989586621680803447"><span class="annot"><span class="annottext">a -&gt; Bool
</span><a href="#local-6989586621680803447"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803446"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803446"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDSet a
forall a. UniqDFM a a -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-var">UniqDSet</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; Bool) -&gt; UniqDFM a a -&gt; UniqDFM a a
forall elt key. (elt -&gt; Bool) -&gt; UniqDFM key elt -&gt; UniqDFM key elt
</span><a href="GHC.Types.Unique.DFM.html#filterUDFM"><span class="hs-identifier hs-var">filterUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Bool
</span><a href="#local-6989586621680803447"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803446"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-112"></span><span>
</span><span id="line-113"></span><span id="local-6989586621680803679"><span class="annot"><a href="GHC.Types.Unique.DSet.html#sizeUniqDSet"><span class="hs-identifier hs-type">sizeUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803679"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span></span><span>
</span><span id="line-114"></span><span id="sizeUniqDSet"><span class="annot"><span class="annottext">sizeUniqDSet :: forall a. UniqDSet a -&gt; Int
</span><a href="GHC.Types.Unique.DSet.html#sizeUniqDSet"><span class="hs-identifier hs-var hs-var">sizeUniqDSet</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; Int
forall key elt. UniqDFM key elt -&gt; Int
</span><a href="GHC.Types.Unique.DFM.html#sizeUDFM"><span class="hs-identifier hs-var">sizeUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">(UniqDFM a a -&gt; Int)
-&gt; (UniqDSet a -&gt; UniqDFM a a) -&gt; UniqDSet a -&gt; Int
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; UniqDFM a a
forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier hs-var">getUniqDSet</span></a></span><span>
</span><span id="line-115"></span><span>
</span><span id="line-116"></span><span id="local-6989586621680803675"><span class="annot"><a href="GHC.Types.Unique.DSet.html#isEmptyUniqDSet"><span class="hs-identifier hs-type">isEmptyUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803675"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span><span>
</span><span id="line-117"></span><span id="isEmptyUniqDSet"><span class="annot"><span class="annottext">isEmptyUniqDSet :: forall a. UniqDSet a -&gt; Bool
</span><a href="GHC.Types.Unique.DSet.html#isEmptyUniqDSet"><span class="hs-identifier hs-var hs-var">isEmptyUniqDSet</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; Bool
forall key elt. UniqDFM key elt -&gt; Bool
</span><a href="GHC.Types.Unique.DFM.html#isNullUDFM"><span class="hs-identifier hs-var">isNullUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">(UniqDFM a a -&gt; Bool)
-&gt; (UniqDSet a -&gt; UniqDFM a a) -&gt; UniqDSet a -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; UniqDFM a a
forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier hs-var">getUniqDSet</span></a></span><span>
</span><span id="line-118"></span><span>
</span><span id="line-119"></span><span id="local-6989586621680803671"><span class="annot"><a href="GHC.Types.Unique.DSet.html#lookupUniqDSet"><span class="hs-identifier hs-type">lookupUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803671"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803671"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680803671"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803671"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-120"></span><span id="lookupUniqDSet"><span class="annot"><span class="annottext">lookupUniqDSet :: forall a. Uniquable a =&gt; UniqDSet a -&gt; a -&gt; Maybe a
</span><a href="GHC.Types.Unique.DSet.html#lookupUniqDSet"><span class="hs-identifier hs-var hs-var">lookupUniqDSet</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; a -&gt; Maybe a
forall key elt.
Uniquable key =&gt;
UniqDFM key elt -&gt; key -&gt; Maybe elt
</span><a href="GHC.Types.Unique.DFM.html#lookupUDFM"><span class="hs-identifier hs-var">lookupUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">(UniqDFM a a -&gt; a -&gt; Maybe a)
-&gt; (UniqDSet a -&gt; UniqDFM a a) -&gt; UniqDSet a -&gt; a -&gt; Maybe a
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; UniqDFM a a
forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier hs-var">getUniqDSet</span></a></span><span>
</span><span id="line-121"></span><span>
</span><span id="line-122"></span><span id="local-6989586621680803667"><span class="annot"><a href="GHC.Types.Unique.DSet.html#uniqDSetToList"><span class="hs-identifier hs-type">uniqDSetToList</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803667"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680803667"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-123"></span><span id="uniqDSetToList"><span class="annot"><span class="annottext">uniqDSetToList :: forall a. UniqDSet a -&gt; [a]
</span><a href="GHC.Types.Unique.DSet.html#uniqDSetToList"><span class="hs-identifier hs-var hs-var">uniqDSetToList</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; [a]
forall key elt. UniqDFM key elt -&gt; [elt]
</span><a href="GHC.Types.Unique.DFM.html#eltsUDFM"><span class="hs-identifier hs-var">eltsUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">(UniqDFM a a -&gt; [a])
-&gt; (UniqDSet a -&gt; UniqDFM a a) -&gt; UniqDSet a -&gt; [a]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; UniqDFM a a
forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier hs-var">getUniqDSet</span></a></span><span>
</span><span id="line-124"></span><span>
</span><span id="line-125"></span><span id="local-6989586621680803663"><span class="annot"><a href="GHC.Types.Unique.DSet.html#partitionUniqDSet"><span class="hs-identifier hs-type">partitionUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680803663"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803663"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803663"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803663"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-126"></span><span id="partitionUniqDSet"><span class="annot"><span class="annottext">partitionUniqDSet :: forall a. (a -&gt; Bool) -&gt; UniqDSet a -&gt; (UniqDSet a, UniqDSet a)
</span><a href="GHC.Types.Unique.DSet.html#partitionUniqDSet"><span class="hs-identifier hs-var hs-var">partitionUniqDSet</span></a></span></span><span> </span><span id="local-6989586621680803437"><span class="annot"><span class="annottext">a -&gt; Bool
</span><a href="#local-6989586621680803437"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UniqDFM a a, UniqDFM a a) -&gt; (UniqDSet a, UniqDSet a)
</span><span class="hs-identifier hs-var">coerce</span></span><span> </span><span class="annot"><span class="annottext">((UniqDFM a a, UniqDFM a a) -&gt; (UniqDSet a, UniqDSet a))
-&gt; (UniqDSet a -&gt; (UniqDFM a a, UniqDFM a a))
-&gt; UniqDSet a
-&gt; (UniqDSet a, UniqDSet a)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; Bool) -&gt; UniqDFM a a -&gt; (UniqDFM a a, UniqDFM a a)
forall elt key.
(elt -&gt; Bool)
-&gt; UniqDFM key elt -&gt; (UniqDFM key elt, UniqDFM key elt)
</span><a href="GHC.Types.Unique.DFM.html#partitionUDFM"><span class="hs-identifier hs-var">partitionUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Bool
</span><a href="#local-6989586621680803437"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">(UniqDFM a a -&gt; (UniqDFM a a, UniqDFM a a))
-&gt; (UniqDSet a -&gt; UniqDFM a a)
-&gt; UniqDSet a
-&gt; (UniqDFM a a, UniqDFM a a)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; UniqDFM a a
forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier hs-var">getUniqDSet</span></a></span><span>
</span><span id="line-127"></span><span>
</span><span id="line-128"></span><span class="hs-comment">-- See Note [UniqSet invariant] in GHC.Types.Unique.Set</span><span>
</span><span id="line-129"></span><span id="local-6989586621680803655"><span id="local-6989586621680803656"><span class="annot"><a href="GHC.Types.Unique.DSet.html#mapUniqDSet"><span class="hs-identifier hs-type">mapUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Uniquable"><span class="hs-identifier hs-type">Uniquable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803656"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680803655"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680803656"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803655"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803656"><span class="hs-identifier hs-type">b</span></a></span></span></span><span>
</span><span id="line-130"></span><span id="mapUniqDSet"><span class="annot"><span class="annottext">mapUniqDSet :: forall b a. Uniquable b =&gt; (a -&gt; b) -&gt; UniqDSet a -&gt; UniqDSet b
</span><a href="GHC.Types.Unique.DSet.html#mapUniqDSet"><span class="hs-identifier hs-var hs-var">mapUniqDSet</span></a></span></span><span> </span><span id="local-6989586621680803433"><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621680803433"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[b] -&gt; UniqDSet b
forall a. Uniquable a =&gt; [a] -&gt; UniqDSet a
</span><a href="GHC.Types.Unique.DSet.html#mkUniqDSet"><span class="hs-identifier hs-var">mkUniqDSet</span></a></span><span> </span><span class="annot"><span class="annottext">([b] -&gt; UniqDSet b)
-&gt; (UniqDSet a -&gt; [b]) -&gt; UniqDSet a -&gt; UniqDSet b
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; b) -&gt; [a] -&gt; [b]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621680803433"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">([a] -&gt; [b]) -&gt; (UniqDSet a -&gt; [a]) -&gt; UniqDSet a -&gt; [b]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; [a]
forall a. UniqDSet a -&gt; [a]
</span><a href="GHC.Types.Unique.DSet.html#uniqDSetToList"><span class="hs-identifier hs-var">uniqDSetToList</span></a></span><span>
</span><span id="line-131"></span><span>
</span><span id="line-132"></span><span class="hs-comment">-- Two 'UniqDSet's are considered equal if they contain the same</span><span>
</span><span id="line-133"></span><span class="hs-comment">-- uniques.</span><span>
</span><span id="line-134"></span><span id="local-6989586621680803649"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680803430"><span class="annot"><span class="hs-identifier hs-type">Eq</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803649"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-135"></span><span>  </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803428"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803428"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680803427"><span class="annot"><span class="annottext">== :: UniqDSet a -&gt; UniqDSet a -&gt; Bool
</span><span class="hs-operator hs-var hs-var hs-var hs-var">==</span></span></span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span id="local-6989586621680803426"><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803426"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDFM a a -&gt; UniqDFM a a -&gt; Bool
forall key a b. UniqDFM key a -&gt; UniqDFM key b -&gt; Bool
</span><a href="GHC.Types.Unique.DFM.html#equalKeysUDFM"><span class="hs-identifier hs-var">equalKeysUDFM</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803428"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDFM a a
</span><a href="#local-6989586621680803426"><span class="hs-identifier hs-var">b</span></a></span></span><span>
</span><span id="line-136"></span><span>
</span><span id="line-137"></span><span id="local-6989586621680803424"><span class="annot"><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier hs-type">getUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803424"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DFM.html#UniqDFM"><span class="hs-identifier hs-type">UniqDFM</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803424"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803424"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-138"></span><span id="getUniqDSet"><span class="annot"><span class="annottext">getUniqDSet :: forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet"><span class="hs-identifier hs-var hs-var">getUniqDSet</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; UniqDFM a a
forall a. UniqDSet a -&gt; UniqDFM a a
</span><a href="GHC.Types.Unique.DSet.html#getUniqDSet%27"><span class="hs-identifier hs-var hs-var">getUniqDSet'</span></a></span><span>
</span><span id="line-139"></span><span>
</span><span id="line-140"></span><span id="local-6989586621680803642"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680803421"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803642"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803642"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-141"></span><span>  </span><span id="local-6989586621680803418"><span class="annot"><span class="annottext">ppr :: UniqDSet a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; UniqDSet a -&gt; SDoc
forall a. (a -&gt; SDoc) -&gt; UniqDSet a -&gt; SDoc
</span><a href="GHC.Types.Unique.DSet.html#pprUniqDSet"><span class="hs-identifier hs-var">pprUniqDSet</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span></span><span>
</span><span id="line-142"></span><span>
</span><span id="line-143"></span><span id="local-6989586621680803641"><span class="annot"><a href="GHC.Types.Unique.DSet.html#pprUniqDSet"><span class="hs-identifier hs-type">pprUniqDSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680803641"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.DSet.html#UniqDSet"><span class="hs-identifier hs-type">UniqDSet</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680803641"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-144"></span><span id="pprUniqDSet"><span class="annot"><span class="annottext">pprUniqDSet :: forall a. (a -&gt; SDoc) -&gt; UniqDSet a -&gt; SDoc
</span><a href="GHC.Types.Unique.DSet.html#pprUniqDSet"><span class="hs-identifier hs-var hs-var">pprUniqDSet</span></a></span></span><span> </span><span id="local-6989586621680803416"><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680803416"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; (UniqDSet a -&gt; SDoc) -&gt; UniqDSet a -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; SDoc
forall a. (a -&gt; SDoc) -&gt; [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprWithCommas"><span class="hs-identifier hs-var">pprWithCommas</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680803416"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">([a] -&gt; SDoc) -&gt; (UniqDSet a -&gt; [a]) -&gt; UniqDSet a -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">UniqDSet a -&gt; [a]
forall a. UniqDSet a -&gt; [a]
</span><a href="GHC.Types.Unique.DSet.html#uniqDSetToList"><span class="hs-identifier hs-var">uniqDSetToList</span></a></span><span>
</span><span id="line-145"></span></pre></body></html>